package com.purdue.CampusFeed.AsyncTasks; import android.os.AsyncTask; import android.util.Log; import com.purdue.CampusFeed.API.Event; import com.purdue.CampusFeed.Adapters.EventArrayAdapter; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONObject; import java.util.ArrayList; public class SearchEvents extends AsyncTask<String, Void, Integer> { EventArrayAdapter adapter; ArrayList<Event> eventArray; public SearchEvents(EventArrayAdapter adapter) { this.adapter = adapter; eventArray = new ArrayList<Event>(); } protected Integer doInBackground(String... cat) { HttpClient httpClient = new DefaultHttpClient(); try { HttpPost request = new HttpPost("http://54.213.17.69:9000/search_event"); JSONObject query = new JSONObject(); query.put("query", cat[0]); StringEntity params = new StringEntity(query.toString()); request.addHeader("content-type", "application/json"); request.setEntity(params); HttpResponse response1 = httpClient.execute(request); // get response HttpEntity res = response1.getEntity(); JSONArray r = new JSONArray(EntityUtils.toString(res)); if (r.length() == 0) { return 0; } for (int i = 0; i < r.length(); i++) { JSONObject current = r.getJSONObject(i); Event e = Event.JSONToEvent(current); //adapter.add(e); eventArray.add(e); } return 1; } catch (Exception ex) { // handle exception here Log.d("MAYANKIN BROWSE", ex.toString()); ex.printStackTrace(); return 0; } finally { httpClient.getConnectionManager().shutdown(); } } @Override protected void onPostExecute(Integer result) { if (result == 0) { Event e = Event.JSONToEvent(new JSONObject()); e.setEventName("No Results Found"); adapter.add(e); } adapter.addAll(eventArray); adapter.notifyDataSetChanged(); } }